package com.movie.service;

import com.movie.entity.User;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface UserService {
    // Service 方法稍后添加
    // 例如: 用户注册, 用户登录等

    User register(User user); // 示例

    User login(String username, String password); // 示例

    // 添加根据 ID 获取用户的方法
    User getUserById(Long id);

    User findByUsername(String username); // 添加 findByUsername 接口方法

    User updateUserProfile(User user); // 添加 updateUserProfile 接口方法

    boolean changePassword(String username, String currentPassword, String newPassword); // 添加 changePassword 接口方法

    // 充值余额
    User rechargeBalance(Long userId, BigDecimal amount);

    // 扣减余额
    User deductBalance(Long userId, BigDecimal amount);

    User withdrawBalance(Long userId, BigDecimal amount);

    // 管理员用户管理方法
    /**
     * 分页获取用户列表
     * @param page 页码（从1开始）
     * @param size 每页大小
     * @return 用户列表
     */
    List<User> getUsersPaged(int page, int size);

    /**
     * 搜索用户
     * @param keyword 搜索关键字
     * @param page 页码（从1开始）
     * @param size 每页大小
     * @return 用户列表
     */
    List<User> searchUsers(String keyword, int page, int size);

    /**
     * 获取用户总数
     * @return 用户总数
     */
    int getUserCount();

    /**
     * 获取搜索结果用户总数
     * @param keyword 搜索关键字
     * @return 搜索结果用户总数
     */
    int getSearchUserCount(String keyword);
}
